import 'package:json_annotation/json_annotation.dart';

part 'bridge_bean.g.dart'; // 生成json代码必须要有：必须添加这个按照${file}.g.dart

//生成命令：flutter pub run build_runner build

@JsonSerializable()
class AppCommMsg {
  String token; //用户tokenqqqqq
  String? iconUrl; //用户iconqqqqq
  String base_url; //基础的http服务器urlqqqq
  String channel; //渠道号qqq
  String version_no; //版本号qqqq
  int device_type; //平台：1-IOS 2-Androidqqqq
  String? email; //邮箱
  String userId; //用户id
  int app_id; //暂时固定101qqq
  String? google_email; //google邮箱(用于判断是否绑定谷歌邮箱)qqqq
  String? apple_user_id; //苹果绑定id(用于判断是否绑定appleid)qqq
//是否苹果企业签，这个只有在苹果这边使用到，当企业签的时候，苹果登录和上传分片这部分不可用，直接隐藏了
  bool? isAppleEnterprise;
  int appEnvType; // 0 开发环境 1预发布 环境 2,正式环境
  bool isUseCrypto; // falses
  String page; // 决定要展示的 页面
  String? parameter; // 页面参数
  bool enable_gray;

  AppCommMsg(
    this.token,
    this.iconUrl,
    this.base_url,
    this.channel,
    this.version_no,
    this.device_type,
    this.email,
    this.userId,
    this.app_id,
    this.google_email,
    this.apple_user_id,
    this.isAppleEnterprise,
    this.appEnvType,
    this.isUseCrypto,
    this.page,
    this.parameter,
    this.enable_gray,
  );

//json_serializable 帮我们生成的将 Map 转为实体类的方法，这个方法的命名规则：_$+当前类名+FromJson
  factory AppCommMsg.fromJson(Map<String, dynamic> json) =>
      _$AppCommMsgFromJson(json);

  // json_serializable 帮我们生成的将实体类转为 Map 的方法，这个方法的命名规则：_$+当前类名+ToJson
  Map<String, dynamic> toJson() => _$AppCommMsgToJson(this);
}

@JsonSerializable()
class DidOpenPageType {
  String param; //基础的http服务器url
  int type; //基础的http服务器url
  String userId; //基础的http服务器url

  DidOpenPageType(this.param, this.type, this.userId);

//json_serializable 帮我们生成的将 Map 转为实体类的方法，这个方法的命名规则：_$+当前类名+FromJson
  factory DidOpenPageType.fromJson(Map<String, dynamic> json) =>
      _$DidOpenPageTypeFromJson(json);

  // json_serializable 帮我们生成的将实体类转为 Map 的方法，这个方法的命名规则：_$+当前类名+ToJson
  Map<String, dynamic> toJson() => _$DidOpenPageTypeToJson(this);
}
